﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;

namespace IQReportes.Utils
{
    public class FuncionesGenericas
    {
        private Random rnd;
        public FuncionesGenericas()
        {
            rnd = new Random();
        }

        public int obtenerNumeroAleatorio(int desde, int hasta)
        {
            return rnd.Next(desde, hasta);
        }

        public string calcularMes(DateTime fecha)
        {
            int mesInt = fecha.Month;
            string mesStr = Constantes.CADENA_VACIA;

            switch (mesInt)
            {
                case 1:
                    mesStr = "Enero";
                    break;
                case 2:
                    mesStr = "Febrero";
                    break;
                case 3:
                    mesStr = "Marzo";
                    break;
                case 4:
                    mesStr = "Abril";
                    break;
                case 5:
                    mesStr = "Mayo";
                    break;
                case 6:
                    mesStr = "Junio";
                    break;
                case 7:
                    mesStr = "Julio";
                    break;
                case 8:
                    mesStr = "Agosto";
                    break;
                case 9:
                    mesStr = "Setiembre";
                    break;
                case 10:
                    mesStr = "Octubre";
                    break;
                case 11:
                    mesStr = "Noviembre";
                    break;
                case 12:
                    mesStr = "Diciembre";
                    break;
            }
            return mesStr;
        }


        public string calcularSemana(DateTime fecha)
        {
            string semana;
            DateTime sabado, domingo;
            DateTime inicio = fecha;
            DateTime fin = fecha;
            int delta;

            delta = DayOfWeek.Saturday - inicio.DayOfWeek;
            sabado = inicio.AddDays(delta);

            delta = DayOfWeek.Sunday - fin.DayOfWeek;
            domingo = fin.AddDays(delta);

            semana = domingo.ToString("dd/MM/yy") + " - " + sabado.ToString("dd/MM/yy");

            return semana;
        }

        public int calcularAno(DateTime fecha)
        {
            int ano = fecha.Year;
            return ano;
        }

        public DateTime convertirStringToFecha(string stFecha, string formato)
        {
            DateTime dtFecha = DateTime.ParseExact(stFecha, formato, CultureInfo.InvariantCulture);
            return dtFecha;
        }

        public string quitarTildes(string texto)
        {
            string consignos = "áéíóú";
            string sinsignos = "aeiou";
            string i, j;
            
            for (int v = 0; v < sinsignos.Length; v++)
            {
                i = consignos.Substring(v, 1);
                j = sinsignos.Substring(v, 1);
                texto = texto.Replace(i, j);
            }

            return texto;
        }
    }
}